package water.com.Ioc;

import java.util.Queue;

/**
 * 此类提供智能管理Bean实例的作用：
 * 主要目的：1.高效利用资源 2.动态满足实际需求
 * 避免资源不足或资源浪费的情况
 */
public class WaterSmartBeanFactory {

    /**
     * 等待获取到容器池的实例
     * @param beanName
     * @return
     */
    public static Object pollBean(String beanName){
        Queue<Object> beanQueue = WaterBeanFactory.multipleBeanFactory.get(beanName);
        Object obj = null;
        while (true){
            if((obj=beanQueue.poll())!=null) return obj;
        }
    }

    /**
     * 使用完实例，将实例添加到实例队列中
     * @param obj
     */
    public static void addBean(Object obj){
        Queue<Object> beanQueue = WaterBeanFactory.multipleBeanFactory.get(obj.getClass().getSimpleName());
        beanQueue.add(obj);
    }

}
